Three-dimensional object substructures

ABSTRACT

Methods and apparatus relating to substructures for three-dimensional objects are described. In an example, a method comprises receiving a lattice model having a consistent dimensionality and determining a substructure model representing a three-dimensional material structure, the substructure model being based on the lattice model and specifying a variable material distribution. The substructure model may be populated with halftone threshold data to provide a three-dimensional halftone threshold matrix

BACKGROUND

Three-dimensional objects generated by an additive manufacturing processmay be formed in a layer-by-layer manner. In one example of additivemanufacturing, an object is generated in a print apparatus bysolidifying portions of layers of build material. In examples, the buildmaterial may be in the form of a powder, fluid or sheet material. Theintended solidification and/or physical properties may be achieved byprinting an agent onto a layer of the build material. Energy may beapplied to the layer and the build material on which an agent has beenapplied may coalesce and solidify upon cooling. In other examples,chemical binding agents may be used to solidify a build material. Inother examples, three-dimensional objects may be generated by usingextruded plastics or sprayed materials as build materials, whichsolidify to form an object.

Some printing processes that generate three-dimensional objects usecontrol data generated from a model of a three-dimensional object. Thiscontrol data may, for example, specify the locations at which to applyan agent to build material, or where build material itself may beplaced, and the amounts to be placed.

BRIEF DESCRIPTION OF DRAWINGS

For a more complete understanding, reference is now made to thefollowing description taken in conjunction with the accompanyingdrawings in which:

FIG. 1 is a flowchart of an example of a method in which athree-dimensional halftone threshold matrix is generated;

FIG. 2 is a flowchart of an example of a method in which athree-dimensional halftone threshold matrix is generated;

FIG. 3 is a simplified schematic of an example of processing apparatusfor generating control data for production of a three-dimensionalobject;

FIG. 4 is a schematic representation of an example of generation of asubstructure model; and

FIG. 5 is an example of a method for generating control data forproduction of a three-dimensional object.

DETAILED DESCRIPTION

Some examples described herein provide an apparatus and a method forgenerating control data that may be used to produce a three-dimensionalobject. Some examples allow arbitrary three-dimensional content with avariety of specified object properties to be processed and used togenerate a three-dimensional object. These object properties maycomprise appearance properties (color, transparency, glossiness, etc),conductivity, density, porosity and/or mechanical properties such asstrength.

In some examples herein, three-dimensional space is characterised interms of ‘voxels’, i.e. three-dimensional pixels, wherein each voxeloccupies a discrete volume. In data modelling a three-dimensionalobject, a voxel at a given location may have at least onecharacteristic. For example, it may be empty, or may have a particularcolor or may represent a particular material, or a particular objectproperty, or the like. The voxels may have any shape, and may be of thesame or of different shapes or sizes. Other volumetric descriptions maybe used. In other examples, three-dimensional space may be characterisedas at least one point, for example using a coordinate system such as an[x, y, z] three-dimensional Cartesian ([XYZ]) coordinate system, or apolar coordinate system. For example, object surfaces may be describedin terms of tessellating flat surfaces, such as triangles, by definingthe corners (which may be termed the vertices) of the triangles.Defining the corners also effectively specifies the edges and the (inone example) triangular faces. This allows an object's shape to beapproximated, making economical use of computer memory space. The datamay for example be the output of a Computer Aided Design (CAD) program,or some other digital representation of a three dimension object.

In some examples, data representing a three-dimensional object isprocessed to generate control data to be used in generating the object.

In some examples, a print material coverage representation defines printmaterial data, for example detailing the amount of print material (suchas agent(s) to be deposited onto a layer of build material, or in someexamples, build materials themselves), and, if applicable, theircombinations. In some examples, this may be specified as a proportionalvolume coverage (for example, X% of a region of a layer of buildmaterial should have agent Y applied thereto). Such print materials maybe related to or selected to provide an object property such as, forexample, color, transparency, flexibility, elasticity, rigidity, surfaceroughness, porosity, conductivity, inter-layer strength, density, andthe like.

The actual location at which each print material (for example, a drop ofan agent) should be applied, as specified in control data, may bedetermined using halftoning techniques.

For example, a set of voxels within object model data may have anassociated print material coverage representation comprising a set ofmaterial volume coverage vectors. In a simple case, such a vector mayindicate that X% of a given region of three-dimensional space shouldhave a particular agent applied thereto, whereas (100-X)% should be leftclear of agent. The material print material coverage representation maythen provide the input for a ‘halftoning’ process to generate controldata that may be used by an additive manufacturing system to produce athree-dimensional object. For example, it may be determined that, toproduce specified object properties, 25% of a layer of build material(or of a portion of a layer) should have an agent applied thereto. Thehalftoning process determines where the drops of agent fall in order toprovide 25% coverage, for example by comparing each location to athreshold value provided in a halftone threshold matrix.

In some examples, data representing a three-dimensional structure orobject is ‘rasterized’, i.e. converted to series of discrete locations.The rasterized data may be at the printable resolution of thethree-dimensional print apparatus to which control data may be provided.

In some examples, control data is generated such that an objectgenerated according to that data has a substructure. For example, theobject may be intended to have an open mesh-like structure, which maymake it light and/or shock resistant, and/or reduce material usage. Theterm ‘substructure’ is used to distinguish from the shape and form of anobject model.

FIG. 1 is an example of a method for generating a three-dimensionalhalftone threshold matrix. Such a matrix could be used to generate anobject having a substructure.

In block 102, a lattice model representing a three-dimensional materialstructure is received. This model may, for example, represent amesh-like, or lattice-like structure. The model may represent acontinuous regular structure, such as a mesh or three-dimensionallattice formed of space filling polyhedra or prisms (which may thereforeform a regular structure), or irregular (for example, branch-like orvein-like) structure.

In some examples, the model may be an explicit, fully definedthree-dimensional model, for example being defined as a vector object.In other examples, the model may be defined on a mathematical oralgorithmic basis, for example as computer readable instructions which,when executed, can build or generate a representation of the model.

In this example, the model has consistent dimensionality, e.g. is formedof polyhedra of consistent size, or if an irregular structure comprisesa consistent average spacing, or is generated based on consistentparameters, or the like.

In block 104, a substructure model which is based on the lattice model(i.e. conserves the consistent base dimensionality) is generated suchthat the material distribution of material used to form the substructureis intended to vary (i.e the substructure model specifies a variablematerial distribution).

For example, the lattice may be used to provide the medial axis (the‘skeleton’) of a substructure model. However, the distribution ofmaterial in a substructure model can be varied by varying the thicknessof a structural element used to form a lattice. In a particular example,a cubic lattice may comprise the same size cubic cells over its volume,but determining the substructure model comprises varying the thicknessof the bar-like structural elements used to build the lattice over atleast a portion of its volume. In another example, a substructure may bedefined based on the dimensionality of lattice cells, but the materialstructure may comprise a combination of open and/or closed cells. Theclosed cells will therefore result in additional build material beingused to form the material structure in the region thereof. In someexamples, at least one closed cell may be filled. In some examples, afilled cell may be selectively filled with solidified or untreated buildmaterial (which may in some examples be a powder), which will againresult in additional build material in this region of the materialstructure. In other examples the cells may be filled with a differentmaterial, which may for example be introduced into the cells as part ofan object generation process (this may be as part of layer-by-layergeneration, or by way of post processing). In some examples, a cellfilling material may be specified for a cell, or for a region of anobject, in the substructure model.

In block 106, the substructure model (i.e. each location in thesubstructure model at which the structure exists) is populated withhalftone threshold data to provide a three-dimensional halftonethreshold matrix. This halftone threshold matrix may be suitable for usein generating control data for manufacturing a three-dimensional objectwith additive manufacturing print apparatus, for example such that theobject generated has the substructure specified by the substructuremodel.

FIG. 2 shows a second example of a method in which a three-dimensionalhalftone threshold matrix is generated. In block 202, informationindicative of an object to be generated is received. This informationmay for example comprise any of size, shape, contour, and resolutioninformation. In block 204, a lattice model is received. In someexamples, this may be as described in relation to block 102 above. Inthis example, the lattice model comprises an indication of the form ofthe lattice (for example, cubic lattice, triangular lattice, branch orvein-like lattice, etc.)

In this example, in block 206, the lattice model is scaled according tothe information indicative of an object to be generated. This allows alattice model of an appropriate size to be generated. This may alsoestablish a base dimensionality of a substructure.

In some examples, scaling the lattice model may comprise tiling, orreplicating, a base ‘seed’ element of the lattice. In other examples,scaling the lattice model may comprise scaling the lattice model or abase element thereof itself: for example, if the model is made up ofcubic cells, the size of the cube may be set depending on theinformation. Scaling may comprise matching the overall size of theobject to be generated (such that, for example, the object and thematerial structure are substantially the same size, or can be describedby a voxel array of the same size). In other examples, scaling maycomprise matching the size of the portion of an object to have asubstructure (i.e. different lattice models could be used for differentportions of a generated object). Scaling may comprise considering thesize of the smallest features of the object to be generated and ensuringthat such details can be represented by a material structure ofappropriate scale. Scaling may also comprise a consideration of theproperties specified for an object to be generated, such as the amountof material to be in a particular volume to ensure that the object has aspecified strength. In other examples, the model may be freely orarbitrarily scaled by a user.

Scaling may be carried out automatically or with user input. In someexamples, a particular lattice model structure (e.g. a regular cubiclattice) may be defined at a plurality of resolutions/scales (e.g. usingcubes of different sizes as a base element), such that scaling thethree-dimensional material structure comprises selecting one of thepredefined structures.

In block 208, at least one property dependent on material distributionfor the object is identified. This may be defined within the informationindicative of the object to be generated, or may be defined according touser input. Such properties may comprise weight, centre of mass,density, strength, elastic behaviour and the like.

In block 210, a material distribution to be specified by a substructuremodel is determined in order to provide the specified property orproperties. For example, material may be distributed to place the centreof mass at a specified location, or such that the object is apredetermined weight or density, or has regions of varying density, orprovides a certain elasticity or resilience, or the like. This may forexample comprise any, or any combination of, specifying the thickness ofat least one structural elements in a region of the model, aspecification of at least one partially or fully enclosed cell in aregion of the substructure model, a specification that at least one cellis a filled cell, or the like.

A rasterized representation of a substructure model based on the(scaled) lattice model is then generated (block 212), for example asarray of values corresponding to locations in the substructure model. Insome examples, this representation may comprise a plurality of planes,each rasterized into discrete locations. If, as outlined above, thelattice model comprises a relatively large proportion of un-occupied, orempty space, each plane may be a partially, or in some examplessparsely, populated array of values. In some examples, the array isbinary: the structure either exists at a location or it does not. Insome examples, the array may be in the form of a plurality of binarybitmaps, each binary bitmap representing a plane of the materialstructure.

In block 214, halftone threshold data is received. In one example, thisdata may be received as a halftone threshold matrix. In one example, thethreshold matrix may comprise the same dimensions as thethree-dimensional substructure model itself (i.e. be a three-dimensionalthresholding matrix). In other examples, the threshold data may besupplied in a different form (for example, portions of a largerthreshold matrix may be used), or may be generated according to storedcomputer readable instructions, or the like.

In this example, the halftone data comprises an array of thresholdvalues. In one example, the threshold values are for carrying out ahalftone operation that compares a value of the threshold matrix againsta value indicative of a print material (such as an agent(s) or agentcombination) probability distribution, for example expressed as an Mvoc(material volume coverage) vector. This chooses a single ‘state’ (one ofthe possible materials or material combinations) based on the thresholdvalue.

The print material coverage may vary within an object and this variationmay be taken into account at the point of constructing a halftonethreshold data. For example, a threshold matrix (or matrices) thatnatively has ‘continuous tone’ threshold values can be formatted to havelocal variability. In some examples, the print material coverage mayvary between planes.

In block 216, each location where the material structure of thesubstructure model exists is populated with a halftone threshold. In anexample in which the substructure model has been rasterized into aseries of arrays, the series therefore provides (if considered as stack)a three-dimensional halftone threshold matrix which carries thestructure of the substructure model: as the matrix is null in alllocations other than those characterising the structure, applying thematrix will result in no use of an print material at that null location,whatever the print material coverage specified for the location. Thisthreshold matrix may be applied to object model data to generate controldata for the production of a three-dimensional object (block 218).

The halftone thresholds may be determined according to halftoningtechniques such as void-and-cluster matrices, error diffusiontechniques, dither based techniques, AM-screens, cluster-dot typepatterns etc. In other examples, rather than supplying athree-dimensional matrix and using this to populate the substructuremodel, the substructure model may be directly populated with halftonedata determined, for example, according to one of these techniques.

FIG. 3 shows an example of processing apparatus 300 that may be used togenerate control data for production of a three-dimensional object. Theapparatus 300 in this example comprises an interface 302, an imageprocessor 304, a mapping module 306, a halftone generator 308 and asubstructure module 310.

In the example of FIG. 3, the data representing a three-dimensionalmodel object 312 comprises object model data 316 and object propertydata 318. The object model data 316 may define a three-dimensional modelof at least a portion of the model object 312. In FIG. 3, the object 312is a simple cube although it will be appreciated that the object couldhave other, and more complex, forms. The model object 312 may define theshape and extent of all or part of an object in a three-dimensionalco-ordinate system, e.g. the solid portions of the object. The objectmodel data 316 may for example be generated by a computer aided design(CAD) application. Object property data 318 defines at least one objectproperty for the three-dimensional object to be generated. In one case,the object property data 318 may comprise any, or any combination ofcolor, flexibility, elasticity, rigidity, surface roughness, porosity,inter-layer strength, density, conductivity and the like for at least aportion of the object to be generated. Object property data 318 may bedefined, for example, for the whole of an object to be generated, e.g.global property data, or for one or multiple portions of an object to begenerated, e.g. local property data. The object property data 318 mayalso be used to define multiple object properties for a portion orportions of an object.

The processing apparatus 300 generates control data 314 which, when usedto generate a three-dimensional object, will generate an object based onthe input object data 316, 318 with the addition of a structurespecified in the substructure module 310.

In more detail, the interface 302 receives the data 316, 318representing the three-dimensional model object 312. In some examples,the interface 302 may receive the object model data 316 and the objectproperty data 318 as a single file; in other examples the interface 302may receive portions of the object model data 316 and/or the objectproperty data 318 as multiple data objects, wherein the object modeldata 316 and the object property data 318 are distributed across anumber of associated data structures. In one example, the object modeldata 316 may comprise voxels that are defined in a three-dimensional(also referred to herein as [x,y,z]) space. A given voxel may haveassociated data that indicates whether a portion of the model object 312is present at that location. As described above, the object propertydata 318 may comprise global and local object property data, e.g.certain object property values as defined in the object property data318 may be associated with each voxel that defines the object and/orcertain object property values may be associated with a set of voxels,e.g. ranging from individual voxels to all voxels associated with theobject. In one case, the data representing the three-dimensional objectcomprises a model of a three-dimensional object that has at least oneobject property specified at every location within the model, e.g. atevery [x, y, z] co-ordinate.

In this example, the image processor 304 receives the object model data316 and the object property data 318 from the interface 302. The imageprocessor 304 processes at least the object model data 316 and generatesa rasterized representation of the three-dimensional object. In anexample, the image processor 304 may generate slices of parallel planesof a model of the three-dimensional object which are then rasterized.Each slice may relate to a portion of a respective layer of buildmaterial in an additive manufacturing system. In a three-dimensionalspace that uses a three-coordinate system, e.g. that uses [x, y, z]co-ordinates, these parallel planes may be z-slices, planes that areparallel to x and y axes (or the xy-plane). Each z-slice may compriseportion(s) of a model that have a common z co-ordinates and that extendin the x and y dimensions. The number of z-slices may depend on aresolution of detail in the z dimension and/or the output resolution ofa layer of build material(s).

In this example, the image processor 304 outputs a plurality oftwo-dimensional raster objects 320, each representing a plane of thethree-dimensional space in which the model object 312 is defined. Eachof these two-dimensional raster objects may comprise an image such as abitmap.

In this example, the image processor 304 associates at least one objectproperty value with each location in a raster object. For example, eachraster object may comprise a set of pixels that extend in the x and ydimensions; each pixel may then be associated with at least one objectproperty value. In the case that one of the object properties defines acolor, the color may be defined in a color space, such as: a monochromecontone space, e.g. grayscale; a Red, Green, Blue (RGB) color space; theInternational Commission on Illumination (CIE) 1931 XYZ color space,wherein three variables (‘X’, ‘Y’ and ‘Z’ or tristimulus values) areused to model a color; the CIE 1976 (L*, a*, b*—CIELAB or ‘LAB’) colorspace, wherein three variables represent lightness (‘L’) and opposingcolor dimensions (‘a’ and ‘b’); or any other color space or derivedcolor space. A color value in these color spaces may comprise acontinuous tone value, e.g. a value within a predefined range of values.For example, in a simple case, an RGB color value may comprise three8-bit values; as such each red, green and blue value may be within therange of 0 to 255. Object properties may be defined implicitly and/orexplicitly and may comprise any of, amongst others: a flexibility value;an elasticity value; a rigidity value; a surface roughness value; aporosity value; a strength value; and a density value.

The mapping module 306 receives the output of the image processor 304and maps a rasterized representation generated by the image processor304 to a print material coverage representation of the three-dimensionalobject. In this example, the mapping module 306 receives raster objects320 as described above. These may be received one by one, e.g. in anorder representative of an ascending height of the object, or as acollection, e.g. all slices of the model object. In one example, themapping module 306 maps object properties to material volume coverage(Mvoc) vectors. In some example, the mapping module 306 may receive theobject model data 316 and the object property data 318 from theinterface 302 directly.

An Mvoc vector may have a plurality of values, wherein each valuedefines a proportion for each, or each combination of print materials inan addressable location of a layer of the three-dimensional object. Forexample, in an additive manufacturing system with two available printmaterials (for example, agents)—M1 and M2, where each print material maybe independently deposited in an addressable area of a layer of thethree-dimensional object, there may be 2² (i.e. four) proportions in agiven Mvoc vector: a first proportion for M1 without M2; a secondproportion for M2 without M1; a third proportion for an over-deposit(i.e. a combination) of M1 and M2, e.g. M2 deposited over M1 or viceversa; and a fourth proportion for an absence of both M1 and M2. In thiscase an Mvoc vector may be: [M1, M2, M1M2, Z] or with example values[0.2, 0.2, 0.5, 0.1]—i.e. in a given [x, y] location in a z slice, 20%M1 without M2, 20% M2 without M1, 50% M1 and M2 and 10% empty. As eachvalue is a proportion and the set of values represent the availablematerial combinations, the set of values in each vector sum to 1 or100%.

For example, in a case where the agents are colored, then the Mvocvector may be determined to generate select agent combinations thatgenerate a match with a supplied object property, e.g. a supplied RGBvalue. The mapping to the print material coverage representation may forexample be stored in a look-up table.

The halftone module 308 and the substructure module 310 operate on theprint material coverage representation (for example comprising at leastone Mvoc vector), either directly and independently, or having beencombined such that a substructure is populated by the halftone module308 to provide a halftone threshold matrix.

The material structure of the substructure module 310 may be based onany lattice structure, such as a regular three-dimensional lattice (e.g.a honeycomb cell-based structure based on any space-filling polyhedralsuch as a cube, and octahedron, or the like), a space-fillingpolyhedron, or forms of bio-mimicry (e.g. vein or branch-like design).Each of these lattice types may be referred to as a lattice model. Insome examples, a lattice model may be defined explicitly by having aninput three-dimensional model that describes its geometry in itsentirety, for example in a vector domain and/or designed using a CADprogram. In the example of FIG. 3, the substructure is based on astacked cuboid mesh which provides a lattice model 322. In otherexamples, the structure of a lattice model may be defined implicitly oranalytically, for example as being based on a regular lattice,space-filling polyhedral, or fractals, or otherwise generated accordingto machine readable instructions. In some examples, substructure modelsmay be formed of tile-able elements, such that a structure (for examplea cubic structure, or an octahedron structure, or a branch-like element)may be repeated in forming a substructure model. Such a tile-ableelements may be used as a seed to provide a substructure for an objectto be generated. In some examples, the substructure module 310 may tilea base element or seed, such as a cube or other shape.

In some examples, the substructure module 310 may change the dimensionsof a base unit, or seed. This may be to ensure that features of theobject, such as finer features may be represented in the objectgenerated. The substructure module 310 may effectively replicate, ortile, data representing a number of cubes or cuboid meshes until thelattice model 322 would occupy the same volume as the model object 312.In other examples, other shapes or forms could be replicated and tiledto form a lattice model 322, or the lattice structure could be ‘grown’,for example from space filling polyhedra, in its entirety, for exampleto fill a predetermined volume, which may the same as the volume of themodel object 312.

In addition, in at least a region of the substructure model, while thebase dimensionality of the substructure specified by the lattice model322 (in this examples, the lengths of the sides of a cube in the latticemodel 322) remains unchanged, the material distribution within thesubstructure model is intended to vary. This may for example compriseany, or any combination of, specifying the thickness of at least onesubstructure elements in a region of the lattice, a specification of atleast one partially or fully enclosed cells in a region of thesubstructure model, a specification that at least one cells may comprisefilled cells, or the like.

FIG. 4 shows a representation of this. The lattice model 322 is operatedon by the substructure module 310 to produce a substructure model 402.The substructure model 402 has a variable material distribution.

In this example, in a region 404 of the substructure model 402, thethickness of a structural element (in this example, the bars making upthe lattice) is thickened compared to other regions thereof. In otherexamples, part of an element may be thickened or reduced. In addition,one cell 406 of the lattice is closed, such that it comprises six solidwalls. This cell 406 may also be specified to be filled, and, if so, aparticular fill material may be specified. This may for example compriseuntreated build material, or build material to be treated with aspecified agent or agent combination. Untreated build material may be ofa different density to build material and/or have an effect on localobject properties such as strength and resilience. In other examples, aparticular build material may be specified. A solid cell wall 408 isalso specified, which does not fully enclose a cell but does result inadditional material being specified in the region thereof.

Specifying a material distribution may contribute to the overall weightor an average density of an object, to the location of the object'scentre of mass and/or to local properties such as strength, resilience,local density and the like.

As the lattice underlying the substructure model has consistentdimensionality, it may be specified in a constant manner, for examplerequiring a single identifier, or a vector description. The variablematerial distribution may be overlaid thereon, for example as an elementwidth, or indicating particular locations for filled walls, closed orfilled cells, cell filler material, or the like.

Furthermore, as (at least across the region of the object described inthis example) the dimensionality remains consistent, the task ofensuring that portions with different material distributions arephysically compatible (for example such that the underlying substructurewill be continuous in nature) is relatively simple, and there may be noneed for a transitional portion to be determined as may be the case if,for example, the lattice size were to change.

In some examples, the substructure module 310 may generate a rasterizedrepresentation of the substructure model 402.

The halftone module 308 provides halftone threshold data, in one examplehaving at least one stored halftone threshold matrix.

The halftone module 308 and the substructure module 310 togethergenerate a halftone threshold matrix 324, which is populated withinstructions to selectively cause a print material to be deposited wherethe substructure exists and can be applied to a print material coveragerepresentation (for example an Mvoc vector) output from the mappingmodule 306 to generate control data 314, for example in the form of aset of discrete print material choices for a pixel in a plane, whereinthe discrete values across the area of the plane may be representativeof proportions set out in the print material coverage representation.

In some examples, the substructure model 402 is rasterized before beingpopulated. In the example of FIG. 4, some planes of the object may havea square grid like pattern, with some filled squares, while other planesmay contain a sparser matrix, representing the cross-section of theupwardly extending bar-like elements of the stacked cubes.

While in the example described above, the substructure model 402 wasformed by tiling a structural element, in other examples, base elementsof a substructure model may instead be populated with halftone data, andthen assembled to form a halftone substructure model. For example, atleast one filled cells may be predefined as a set of halftonethresholds, as may a range of element thickness, filled walls, wallthickness, etc. A halftone matrix having a substructure according to thesubstructure model 402 could be formed by effectively stacking suchpredefined sets of halftone thresholds.

In a particular case, a simple model may be provided in which a singlevariable across a consistent lattice is the specification of a cellbeing open or filled. A halftone matrix may then be built up by‘stacking’ cells which are fully populated with halftone data torepresent filled cells, and cells which are populated in the region ofthe bar-like structural elements and otherwise empty.

An example of a method of generating control data for production of athree-dimensional object is set out in FIG. 5. In block 502, datarepresenting a three-dimensional model object (which may be all or aportion of an object) is obtained.

In some examples the data may comprise a three-dimensional bit-mapdefining a M×N×L array of voxels in which M, N and L are positiveintegers and in which each voxel is located at a uniquethree-dimensional location. In some examples, the M×N×L array of voxelsis a cuboid which encloses at least a portion of (and in some examples,all of) a three-dimensional model object. In block 504, the datarepresenting the three-dimensional object is mapped to a print materialcoverage representation, the print material coverage representation forexample specifying print material as proportions of a set of availableprint materials at the location. In some examples, before being somapped, the model object may be rasterized into a plurality of planes.The number of planes used may depend on any of several factors, forexample, the type of build material, type of coalescing agent, type ofcoalescence modifier agent(s) used, thickness per layer to provide theproperties and/or finish etc.

In block 506, a substructure model representing a material structure isobtained. Such a substructure model may be based on, or grown from, aseed or base element, such as a cube or other space-filling polyhedron,following predetermined rules. There may be a number of substructuremodels and obtaining a substructure model may comprise selectingsubstructure model. The substructure may be a relatively open meshstructure. The substructure may vary over its volume. In particular, inthis example, the substructure is specified by a lattice structure whichis consistent over a volume (which may be all or part of asubstructure), but with a varying material distribution.

The substructure model is populated with halftoning data to provide athree-dimensional halftone threshold matrix. In some examples, beforebeing populated, the substructure model may be rasterized into planes.The number of planes may be the same as the number of slices as themodel object.

The print material coverage representation is then compared with thethreshold values of the threshold matrix representing the samethree-dimensional location to generate control data for printing athree-dimensional object based on the model object and having a materialsubstructure according to the substructure model (block 508).

In some examples herein, a model object is provided in order that anobject may be generated. However, the generated object is intended tohave a substructure which is provided not as model object data, but as apart of a halftoning operation. This allows a substructure to specifiedand/or applied later in design pipeline than the model object generationstage of design, and therefore a new or different substructure may bemore readily applied to an object to be generated. As the materialdistribution within the substructure can vary, fine control over objectproperties can be applied with the substructure.

Examples in the present disclosure can be provided as methods, systemsor machine readable instructions, such as any combination of software,hardware, firmware or the like. Such machine readable instructions maybe included on a computer readable storage medium (including but notlimited to disc storage, CD-ROM, optical storage, etc.) having computerreadable program codes therein or thereon.

The present disclosure is described with reference to flow charts and/orblock diagrams of the method, devices and systems according to examplesof the present disclosure. Although the flow diagrams described aboveshow a specific order of execution, the order of execution may differfrom that which is depicted. Blocks described in relation to one flowchart may be combined with those of another flow chart. It shall beunderstood that each flow and/or block in the flow charts and/or blockdiagrams, as well as combinations of the flows and/or diagrams in theflow charts and/or block diagrams can be realized by machine readableinstructions.

The machine readable instructions may, for example, be executed by ageneral purpose computer, a special purpose computer, an embeddedprocessor or processors of other programmable data processing devices torealize the functions described in the description and diagrams. Inparticular, a processor or processing apparatus, such the processingapparatus 300, may execute the machine readable instructions. Thusfunctional modules of the apparatus and devices may be implemented by aprocessor executing machine readable instructions stored in a memory, ora processor operating in accordance with instructions embedded in logiccircuitry. The term ‘processor’ is to be interpreted broadly to includea CPU, processing unit, ASIC, logic unit, or programmable gate arrayetc. The methods and functional modules may all be performed by a singleprocessor or divided amongst several processors.

Such machine readable instructions may also be stored in a computerreadable storage that can guide the computer or other programmable dataprocessing devices to operate in a specific mode.

Such machine readable instructions may also be loaded onto a computer orother programmable data processing devices, so that the computer orother programmable data processing devices perform a series ofoperations to produce computer-implemented processing, thus theinstructions executed on the computer or other programmable devicesprovide a means for realizing functions specified by flow(s) in the flowcharts and/or block(s) in the block diagrams.

Further, the teachings herein may be implemented in the form of acomputer software product, the computer software product being stored ina storage medium and comprising a plurality of instructions for making acomputer device implement the methods recited in the examples of thepresent disclosure.

While the method, apparatus and related aspects have been described withreference to certain examples, various modifications, changes,omissions, and substitutions can be made without departing from thespirit of the present disclosure. It should be noted that theabove-mentioned examples illustrate rather than limit what is describedherein, and that those skilled in the art will be able to design manyalternative implementations without departing from the scope of theappended claims. In particular, a feature or block from one example maybe combined with or substituted by a feature/block of another example

The word “comprising” does not exclude the presence of elements otherthan those listed in a claim, “a” or “an” does not exclude a plurality,and a single processor or other unit may fulfil the functions of severalunits recited in the claims.

The features of any dependent claim may be combined with the features ofany of the independent claims or other dependent claims.

1. A method comprising: receiving a lattice model having consistentdimensionality; determining a substructure model representing athree-dimensional material structure, the substructure model being basedon the lattice model and specifying a variable material distribution;and populating the substructure model with halftone threshold data toprovide a three-dimensional halftone threshold matrix.
 2. A methodaccording to claim 1 in which the lattice model comprises an open cellstructure, and determining the substructure model comprises specifyingat least one closed cell within the substructure model.
 3. A methodaccording to claim 1 in which the lattice model comprises an open cellstructure, in which determining the substructure model comprisesspecifying at least one closed cell within the substructure model whichis filled with a material.
 4. A method according to claim 3, in whichdetermining the substructure model comprises specifying that at leastone closed cell within the substructure model is filled with untreatedbuild material.
 5. A method according to claim 1 in which the latticemodel is formed of structural elements, and determining the substructuremodel comprises specifying structural elements of varying thicknesswithin the substructure model.
 6. A method according to claim 1 in whichthe lattice model comprises an open cell structure, and determining thesubstructure model comprises specifying at least one partially enclosedcell within the substructure model.
 7. Processing apparatus, comprising:an interface to receive data representing a three-dimensional modelobject, the data comprising object model data and object property data;a mapping module to map received data to a print material coveragerepresentation; a halftone module to provide halftone threshold data; asubstructure module to define a substructure for a three-dimensionalobject to be generated, the substructure specifying in at least a regionthereof a consistent lattice structure and a variable materialdistribution; wherein the apparatus is to apply a substructure and ahalftoning to the print material coverage representation to generatecontrol data for the production of a three-dimensional object having thesubstructure.
 8. Processing apparatus according to claim 7 in which thematerial distribution within the substructure model is determinedaccording to the object property data.
 9. Processing apparatus accordingto claim 7 in which the object property data specifies at least one of:object density, object weight, object resilience, object centre of mass.10. Processing apparatus according to claim 7 wherein the halftonemodule is to populate the substructure to provide a three-dimensionalhalftone threshold matrix having a substructure and the halftonethreshold matrix is applied to the print material coveragerepresentation to generate the control data.
 11. Processing Apparatusaccording to claim 7 in which the substructure module is to define thesubstructure using halftone threshold data.
 12. A method comprising:obtaining data representing a three-dimensional model object; mappingthe data representing the three-dimensional model object to a printmaterial coverage representation, the print material coveragerepresentation specifying print materials to be applied at a location inthe object; obtaining a substructure model representing a materialstructure, at least a portion thereof having a consistent latticestructure with a variable material distribution and being populated withhalftone threshold values to provide a halftone threshold matrix;comparing the print material coverage representation with thresholdvalues of the threshold matrix representing the same three-dimensionallocation to generate control data for generating a three-dimensionalobject having a material structure according to the substructure model.13. A method according to claim 12 in which the data representing thethree-dimensional model specifies at least one property which isdependent on material distribution, and in which obtaining thesubstructure model comprises identifying at least one such objectproperty and defining a substructure model according to the objectproperty.
 14. A method according to claim 12 in which obtaining thesubstructure model comprises scaling, stacking or replicating at leastone substructure base element.
 15. A method according to claim 14 inwhich at least one base element comprises halftone data.